﻿using System;
using System.Runtime.Serialization;

namespace Kyoh.Lib.IO.Tasks
{
    /// <summary>非同期処理が中断された場合に発生する例外です。</summary>
    [Serializable]
    public class SuspendException : Exception
    {
        /// <summary><see cref="SuspendException"/> クラスの新しいインスタンスを初期化します。</summary>
        public SuspendException() { }
        /// <summary><see cref="SuspendException"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="message">例外のメッセージ。</param>
        public SuspendException(string message) : base(message) { }
        /// <summary><see cref="SuspendException"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="message">例外のメッセージ。</param>
        /// <param name="inner">内部例外を表す <see cref="Exception"/>。</param>
        public SuspendException(string message, Exception inner) : base(message, inner) { }
        /// <summary><see cref="SuspendException"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="context">スローされている例外に関するシリアル化済みオブジェクト データを保持している <see cref="SerializationInfo"/>。</param>
        /// <param name="info">転送元または転送先に関するコンテキスト情報を含んでいる <see cref="StreamingContext"/>。</param>
        protected SuspendException(SerializationInfo info, StreamingContext context) : base(info, context) { }
    }
}
